/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.Controller;

import com.DAO.AcervoRegistroDAO;
import com.Util.MoveDiretorioArquivo;
import com.thoughtworks.xstream.XStream;
import java.util.List;
import javax.jws.WebMethod;
import javax.jws.WebService;

/**
 *
 * @author Fellipe
 */
@WebService(serviceName = "AcervoRegistro")
public class AcervoRegistro {

    private AcervoRegistroDAO ar = new AcervoRegistroDAO();
    private XStream xstream = new XStream();
    
    @WebMethod(operationName = "create")
    public void createAcervoRegistro(String xml) {
        
        com.Model.AcervoRegistro aReg = fromXMLAcervoRegistro(xml);
        
        ar.create(aReg);
        
        for (com.Model.AcervoConteudo aCon : aReg.getConteudo()) {
            
            if (aCon.getNomeOrigem() != null) {
                MoveDiretorioArquivo mv = new MoveDiretorioArquivo();
                mv.setAc(aCon);
                mv.start();
            }
            
        }
        
    }
    
    @WebMethod(operationName = "readNomes")
    public String readNomesAcervoRegistro(int chaveAcervo) {
        
        return toXMLAcervoRegistroList(ar.readNomes(chaveAcervo));
        
    }
    
    @WebMethod(operationName = "read")
    public String readAcervoRegistro(int chaveRegistro) {
        
        return toXMLAcervoRegistro(ar.read(chaveRegistro));
        
    }
    
    @WebMethod(operationName = "update")
    public void updateAcervoRegistro(String xml) {
        
    }
    
    @WebMethod(operationName = "delete")
    public void deleteAcervoRegistro(int chaveAcervoRegistro) {
        
    }
    
//Funções XML    
    private String toXMLAcervoRegistroList(List<com.Model.AcervoRegistro> lista) {
        
        return xstream.toXML(lista);
        
    }
    
    private String toXMLAcervoRegistro(com.Model.AcervoRegistro acervoRegistro) {
        
        return xstream.toXML(acervoRegistro);
        
    }

    private com.Model.AcervoRegistro fromXMLAcervoRegistro(String xml) {
        
        return (com.Model.AcervoRegistro) xstream.fromXML(xml);
        
    }    
    
}
